iT邦幫忙

2024 iThome 鐵人賽

DAY 6
0

昨天我們已確認將採用那些雲端元件。今天,我們將這些元件實際整合至系統架構圖中,並進行初步的驗證。

https://ithelp.ithome.com.tw/upload/images/20240907/20168312IwV29HXZAt.png

各元件功能說明

  • Sales Service:作為系統的門面,所有使用者皆透過此服務進行購票。此服務將承載主要的流量,並負責將使用者請求轉發至後端服務,後續效能調教會需要針對此服務特別做調整。
  • Memorystore:扮演系統的快取層,用以儲存頻繁存取的售票資訊,例如商品資訊、庫存數量、座位選項等。透過 Memorystore,我們可大幅降低資料讀取的延遲,提升系統響應速度。
  • Pub/Sub:作為訊息傳遞的緩衝區,將 Sales Service 與 Process Service 解耦。當 Sales Service 面臨大量購票請求時,可將資料委託給 Pub/Sub,避免單一服務過載。Process Service 將從 Pub/Sub 訂閱訊息,並依序處理,確保資料的可靠性。
  • Process Service:負責處理資料的持久化與其他後續作業。需要對 Auto Scaling 做一些限制,根據系統負載自動調整執行個體數量,以達到成本效益。
  • Cloud SQL:作為系統的資料庫,用以儲存最終的購票紀錄。Cloud SQL 提供高可用性與彈性擴展能力,確保資料的安全性與一致性。

你可能會想,為什麼需要一個 Pub/Sub 在中間,直接寫入 Cloud SQL 不就好了嗎?

的確,在日常流量不高的情況下,直接寫入 Cloud SQL 是沒問題的。但當短時間內高流量湧入時,Cloud SQL 可能會無法承受,尤其是因為 Cloud SQL 的費用不低,我們的配置也沒有開到非常高的 IOPS。Pub/Sub 能夠承受非常高的流量(預設 asia-east1 可達到 800 MB/s),而且價格非常便宜,每月前 10GB 都免費,我們可能連免費額度都用不完,這能大幅降低成本。


上一篇
Day5: 設計-雲端元件選用
系列文
窮小子的售票系統6
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言